/**
 * 
 */
package cn.terrence.myrpc.common.serializable;

import java.io.InputStream;
import java.io.OutputStream;
/**
 * 
 * @author Terrence2013
 * 2018年1月19日 下午1:50:55
 * 序列化接口
 */
public interface ICoder {
	
	/**
	 * 序列化
	 * 1.输出流由创建者负责关闭
	 * @param outputStream
	 * @param object
	 * @throws CoderException
	 */
	public void code(OutputStream outputStream,Object object) throws CoderException;
	
	/**
	 * 反序列化
	 * 1.输入流由创建者负责关闭
	 * @param inputStream
	 * @param clazz
	 * @return
	 * @throws CoderException
	 */
	public <T>T decode(InputStream inputStream,Class<T> clazz) throws CoderException;

}
